/*
goroutine
https://www.bilibili.com/video/BV1gf4y1r79E/?p=27&spm_id_from=pageDriver&vd_source=8bd7b24b38e3e12c558d839b352b32f4
*/
package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println("goroutine!")

	// 无参
	go func() {
		defer fmt.Println("A.defer")

		func() { // 匿名函数
			// 如果想退出
			//runtime.Goexit()
			// return //使用return只会退出内层函数

			defer fmt.Println("B.defer")
			fmt.Println("B")
		}()

		fmt.Println("A")
	}()

	// 有参
	go func(a int, b int) bool {
		fmt.Println(a + b)
		return true
	}(1, 2)
	// 问：获得返回值怎么办？
	// 答：channel

	// 死循环
	for {
		time.Sleep(1 * time.Second)
	}

}
